// 单独读取项目.dat文件的测试代码（可放在Main方法中执行）
import estore.model.Product;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.Map;

//TIP 要<b>运行</b>代码，请按 <shortcut actionId="Run"/> 或
// 点击装订区域中的 <icon src="AllIcons.Actions.Execute"/> 图标。
public class Main {
    public static void main(String[] args) {
        //TIP 当文本光标位于高亮显示的文本处时按 <shortcut actionId="ShowIntentionActions"/>
        // 查看 IntelliJ IDEA 建议如何修正。
        System.out.printf("Hello and welcome!");

        for (int i = 1; i <= 5; i++) {
            //TIP 按 <shortcut actionId="Debug"/> 开始调试代码。我们已经设置了一个 <icon src="AllIcons.Debugger.Db_set_breakpoint"/> 断点
            // 但您始终可以通过按 <shortcut actionId="ToggleLineBreakpoint"/> 添加更多断点。
            System.out.println("i = " + i);
        }

        String datPath = "products.dat"; // 你的.dat文件路径
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(datPath))) {
            // 读取序列化的Map对象（需与写入时的类型一致）
            Map<String, Product> productMap = (Map<String, Product>) ois.readObject();
            // 遍历打印数据（验证内容）
            System.out.println(".dat文件中的商品数据：");
            for (Product p : productMap.values()) {
                System.out.println(p); // 调用Product的toString()格式化输出
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}